package types

type UserSignedPageRequest struct {
	Email    string `json:"email,required"`
	PageNum  int64  `json:"pageNum,default=1"`
	PageSize int64  `json:"pageSize,default=10,required"`
}

type UserSignedResponse struct {
	InstallationId int64  `json:"installationId"`
	Email          string `json:"email"`
	Name           string `json:"name"`
	TargetId       string `json:"targetId"`
	TargetName     string `json:"targetName"`
	TargetUrl      string `json:"targetUrl"`
	TargetType     string `json:"targetType"`
	SignStatus     int    `json:"signStatus"`
	SignTime       string `json:"signTime"`
	RevokeTime     string `json:"revokeTime"`
	UpdateAt       string `json:"updateAt"`
}

type UserSignedPageResponse struct {
	Content  []UserSignedResponse `json:"content"`
	Total    int64                `json:"total"`
	PageNum  int64                `json:"pageNum"`
	PageSize int64                `json:"pageSize"`
	Code     int64                `json:"code"`
	Msg      string               `json:"msg"`
}

type UserCancelSignRequest struct {
	Email          string `json:"email,required"`
	InstallationId int64  `json:"installationId,required"`
}

type UserSignedDetailRequest struct {
	Email          string `json:"email,required"`
	InstallationId int64  `json:"installationId,required"`
}

type SignedUserDetailRequest struct {
	Email          string `json:"email,required"`
	InstallationId int64  `json:"installationId,required"`
}

type SignedUserListRequest struct {
	InstallationId int64 `json:"installationId,required"`
}

type SignedDetailResponse struct {
	Name       string `json:"name"`
	Email      string `json:"email"`
	SignStatus int    `json:"signStatus"`
	SignTime   string `json:"signTime"`
	RevokeTime string `json:"revokeTime"`
	Content    string `json:"content"`
	TargetId   string `json:"targetId"`
	TargetName string `json:"targetName"`
	TargetUrl  string `json:"targetUrl"`
	TargetType string `json:"targetType"`
}

type SignedUserPageRequest struct {
	InstallationId string `json:"installationId,required"`
	SignStatus     int    `json:"signStatus,default=1"`
	PageNum        int64  `json:"pageNum,default=1"`
	PageSize       int64  `json:"pageSize,default=20"`
}

type SignedUserResponse struct {
	InstallationId int64  `json:"installationId"`
	Email          string `json:"email"`
	Name           string `json:"name"`
	TargetId       string `json:"targetId"`
	TargetName     string `json:"targetName"`
	TargetUrl      string `json:"targetUrl"`
	TargetType     string `json:"targetType"`
	SignStatus     int    `json:"signStatus"`
	SignTime       string `json:"signTime"`
	RevokeTime     string `json:"revokeTime"`
	UpdateAt       string `json:"updateAt"`
}

type SignedUserPageResponse struct {
	Content  []SignedUserResponse `json:"content"`
	Total    int64                `json:"total"`
	PageNum  int64                `json:"pageNum"`
	PageSize int64                `json:"pageSize"`
	Code     int64                `json:"code"`
	Msg      string               `json:"msg"`
}
